package com.chuanyang.driverh.utils;

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;


/**
 * Created by Shinelon on 2016/5/26.
 * 隐藏软键盘
 */
public class WindowUtils {
    public static void hideKeyboard(Activity act, View v) {
        InputMethodManager imm = ((InputMethodManager) act.getSystemService(act.INPUT_METHOD_SERVICE));
        if (imm != null && act.getCurrentFocus() != null) {
            imm.hideSoftInputFromWindow(act.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }

    /**
     * 西风多少恨，吹不散眉弯！—唐大帅
     *
     * @author 唐帅
     * 获取屏幕宽度
     * created at
     */

    public static int getScreenWide(Context context) {
        int width;
        //(1)动态获取手机的宽和高  windowmanager  smsmanger telephonemanager
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        return width = wm.getDefaultDisplay().getWidth();

    }

    /**
     * 西风多少恨，吹不散眉弯！—唐大帅
     *
     * @author 获取状态栏高度
     * created at
     */
    public static int getStatusHight(Context context) {
        Resources resources = context.getResources();
        int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
        int height = resources.getDimensionPixelSize(resourceId);
        return height;

    }

    /**
     * 西风多少恨，吹不散眉弯！—唐大帅
     *
     * @author 唐帅
     * 获取底部导航按钮高度
     * created at
     */

    public static int getNavigationBarHeight(Context context) {
        try {
            Resources resources = context.getResources();
            int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
            int height = resources.getDimensionPixelSize(resourceId);
            return height;
        } catch (Exception e) {
            return 0;
        }
    }

    /**
     * 西风多少恨，吹不散眉弯！—唐大帅
     *
     * @author 唐帅
     * 获取屏幕高度
     * created at
     */

    public static int getScreenHight(Context context) {
        int hight;
        //(1)动态获取手机的宽和高  windowmanager  smsmanger telephonemanager
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        return hight = wm.getDefaultDisplay().getHeight();

    }

    /**
     * 西风多少恨，吹不散眉弯！—唐大帅
     *
     * @author 唐帅
     * 获取屏幕像素密度
     * created at
     */
    public static float getPixel(Activity context) {
        DisplayMetrics metric = new DisplayMetrics();
        context.getWindowManager().getDefaultDisplay().getMetrics(metric);
        float density = metric.density;      // 屏幕密度（0.75 / 1.0 / 1.5）
        return density;
    }

    /**
     * 获取键盘状态
     * getWindow().getAttributes().softInputMode这个方法可以获得当前软键盘的状态。
     * <p/>
     * 你在需要的地方做一个判断，值是：
     * <p/>
     * 　　WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED（显示）
     * <p/>
     * 　　WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN（隐藏）
     * <p/>
     * 调用getWindow().setSoftInputMode(...)这个方法传上面两个状态值可以设置软键盘的状态
     */
    public static boolean isHiden(Activity act, View v) {
        int i = act.getWindow().getAttributes().softInputMode;
        if (i == WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) {
            return false;
        }
        return true;
    }

    /**
     * 显示弹出视图
     *
     * @param context
     * @param positionView
     * @param view
     * @param x
     * @param y
     * @param style        如果style传入了0  表示默认无动画
     * @return
     */
    /*public static PopupWindow showPopWindow(Context context, int gravity, View positionView, View view, int x, int y, int style) {

        // 创建 PopupWindow
        // PopupWindow popwindow=new PopupWindow(视图对象 , 宽, 高);
        PopupWindow popwindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        //在视图对象 以外的范围 点击关闭
        popwindow.setOutsideTouchable(true);//自动关闭

        popwindow.setFocusable(true);//响应返回键关闭1.聚集 2.背景
        // popwindow.setBackgroundDrawable(new ColorDrawable(R.color.));
        // 指定控件做参考 显示出视图
        // popwindow.showAtLocation(参考视图, 坐标位置, 偏移x，偏移y)
        // int [] location =new int[2];
        // positionView.getLocationOnScreen(location);//获取视图在屏幕中的坐标
        if (style != 0) {
            popwindow.setAnimationStyle(R.style.popWindow_scaleanimation);
        }
        popwindow.showAtLocation(positionView, gravity, x, y);
        return popwindow;
    }*/

}
